/**
 * @author wangzhe
 * @date 2019/7/26 16:21
 *
 * 有 N 个物品和一个容量是 V 的背包。
 * 物品之间具有依赖关系，且依赖关系组成一棵树的形状。如果选择一个物品，则必须选择它的父节点。
 * 如果选择物品5，则必须选择物品1和2。这是因为2是5的父节点，1是2的父节点。
 * 每件物品的编号是 i，体积是 vi，价值是 wi，依赖的父节点编号是 pi。物品的下标范围是 1…N。
 * 求解将哪些物品装入背包，可使物品总体积不超过背包容量，且总价值最大。
 * 输出最大价值。
 *
 * 输入格式：
 * 第一行有两个整数 N，V，用空格隔开，分别表示物品个数和背包容量。
 * 接下来有 N 行数据，每行数据表示一个物品。
 * 第 i 行有三个整数 vi,wi,pi，用空格隔开，分别表示物品的体积、价值和依赖的物品编号。
 * 如果 pi=−1，表示根节点。 数据保证所有物品构成一棵树。
 *
 * 输出格式：
 * 输出一个整数，表示最大价值。
 *
 * 数据范围
 * 1 ≤ N, V ≤ 100
 * 1 ≤ vi, wi ≤ 100
 * 父节点编号范围：
 * 内部结点：1≤pi≤N;
 * 根节点 pi=−1;
 *
 * 输入样例：
 * 5 7
 * 2 3 -1
 * 2 2 1
 * 3 5 1
 * 4 7 2
 * 3 6 2
 * 输出样例：
 * 11
 *
 */

public class Solution {

    /**
     * 递归来处理，每到一个节点时，可以将他的子节点的最大价值先算出来。
     * 每个子节点都对应了在不同体积下的最大价值，可以把每个子节点看成时一个物品组。
     * 可以看成是一个分组背包问题，每个组只能选择一个物品。
     */


}
